﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using produccion.clases;
using System.Windows.Input;
using System.Windows;
using System.Collections.ObjectModel;
using System.ComponentModel;
using produccion.modelo;
using produccion.AccesoDatos;
using System.Diagnostics;
using System.Collections.Specialized;
using System.Windows.Controls;
using System.Globalization;
using System.Windows.Media.Imaging;
using System.Data;
using produccion.reportes;

namespace produccion.vistamodelo
{
    public class VMCumplimientoEntregaPedidos : ViewModelBase
    {
        #region Campos
            private ProcesoProduccionRepositorio _repositorio = new ProcesoProduccionRepositorio();//Guarda los metodos que tienen los SP
            private CLSMAECLIP _Clientes = new CLSMAECLIP();

            Int32 IntPtrAño;//FJRF - Estas variables guardan los datos finales enviados para visualizar datos y enviarlos al imprimir
            String StrPtrClienteInicial, StrPtrClienteFinal;//FJRF - Estas variables guardan los datos finales enviados para visualizar datos y enviarlos al imprimir

        #endregion
        #region Constructor
            public VMCumplimientoEntregaPedidos()
            {
                try
                {
                    if (MDOgeneral.conexion == null || MDOgeneral.conexion.State == ConnectionState.Closed)
                    {
                        MDOgeneral.conectar();
                    }
                    strTituloVentana = "CUMPLIMIENTO ENTREGA  DE PEDIDOS POR MES" + " - Usuario: " + MDOgeneral.usuario + " - [FrmCumplimientoEntregaPedidos]";

                    DateTime dtmFecha = DateTime.Now;
                    IntAño = Convert.ToInt32(dtmFecha.Year.ToString());
                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }
            }
        #endregion
        #region Interfaces publicas (Propiedades)
            //CODIGO TITULO DEL FORMULARIO
            private ObservableCollection<VmDatosGrafico> _lisDatosGrafico;
            public ObservableCollection<VmDatosGrafico> lisDatosGrafico
            {
                get { return _lisDatosGrafico; }
                set { _lisDatosGrafico = value; base.OnPropertyChanged("lisDatosGrafico"); }
            }

            private string _strTituloVentada;
            public string strTituloVentana
            {
                get { return _strTituloVentada; }
                set
                {
                    _strTituloVentada = value; base.OnPropertyChanged("strTituloVentana");
                }
            }
            private Int32 _IntAño;
            public Int32 IntAño
            {
                get { return _IntAño; }
                set
                { 
                    _IntAño = value;

                    if (_IntAño.ToString().Length == 4)
                    {
                        Consultar();
                    }
                    base.OnPropertyChanged("IntAño");     
                }
                
            }
            //CLIENTE
            public string strCodigoCliente
            {
                get { return _Clientes.CODCLI_CLI; }
                set
                {
                    _Clientes.CODCLI_CLI = value;
                    _Clientes.consultar();
                    if (_Clientes.EXISTE == true)
                    {
                        strNombreCliente = _Clientes.NOMCLI_CLI;
                        Consultar();
                    }
                    else
                    {
                        if (_Clientes.CODCLI_CLI.Length == 0)
                        {
                            Consultar();
                            strNombreCliente = "";
                        }
                        else
                        {
                            strNombreCliente = "No existe";
                        }
                    }
                    base.OnPropertyChanged("strCodigoCliente");
                    base.OnPropertyChanged("strNombreCliente");
                }
            }
            private string _strNombreCliente;
            public string strNombreCliente
            {
                get { return _strNombreCliente; }
                set
                { _strNombreCliente = value; base.OnPropertyChanged("strNombreCliente"); }
            }
            private List<MCumplimientoEntregaPedidos> _LisCumplimientoEntregaPedidos;
            public List<MCumplimientoEntregaPedidos> LisCumplimientoEntregaPedidos
            {
                get { return _LisCumplimientoEntregaPedidos; }
                set { _LisCumplimientoEntregaPedidos = value; base.OnPropertyChanged("LisCumplimientoEntregaPedidos"); }
            }
            private VmCumplimientoEntregaPedidos _selLisCumplimientoEntregaPedidos = new VmCumplimientoEntregaPedidos();
            public VmCumplimientoEntregaPedidos selLisCumplimientoEntregaPedidos
            {
                get { return _selLisCumplimientoEntregaPedidos; }
                set 
                {
                    _selLisCumplimientoEntregaPedidos = value;
                    if (_selLisCumplimientoEntregaPedidos != null)
                    {
                        base.OnPropertyChanged("selLisCumplimientoEntregaPedidos");
                    }
                }
            }
            private ObservableCollection<VmCumplimientoEntregaPedidos> _lisCumplimientoEntregaPedidos = new ObservableCollection<VmCumplimientoEntregaPedidos>();
            public ObservableCollection<VmCumplimientoEntregaPedidos> lisCumplimientoEntregaPedidos
            {
                get { return _lisCumplimientoEntregaPedidos; }
                set { _lisCumplimientoEntregaPedidos = value; base.OnPropertyChanged("lisCumplimientoEntregaPedidos"); }
            }
        #endregion
        #region Comandos
            RelayCommand _cmdSalir;
            public ICommand cmdSalir
            {
                get
                {
                    if (_cmdSalir == null)
                    {
                        _cmdSalir = new RelayCommand(Salir);
                    }
                    return _cmdSalir;
                }
            }

            //FJRF - Inicio de Consulta de periodos
            RelayCommand _cmdConsultarEnero;
            public ICommand cmdConsultarEnero
            {
                get
                {
                    if (_cmdConsultarEnero == null)
                    {
                        _cmdConsultarEnero = new RelayCommand(x => ConsultarDatos("ENE"));
                    }
                    return _cmdConsultarEnero;
                }
            }
            RelayCommand _cmdConsultarFebrero;
            public ICommand cmdConsultarFebrero
            {
                get
                {
                    if (_cmdConsultarFebrero == null)
                    {
                        _cmdConsultarFebrero = new RelayCommand(x => ConsultarDatos("FEB"));
                    }
                    return _cmdConsultarFebrero;
                }
            }
            RelayCommand _cmdConsultarMarzo;
            public ICommand cmdConsultarMarzo
            {
                get
                {
                    if (_cmdConsultarMarzo == null)
                    {
                        _cmdConsultarMarzo = new RelayCommand(x => ConsultarDatos("MAR"));
                    }
                    return _cmdConsultarMarzo;
                }
            }
            RelayCommand _cmdConsultarPrimerTrimestre;
            public ICommand cmdConsultarPrimerTrimestre
            {
                get
                {
                    if (_cmdConsultarPrimerTrimestre == null)
                    {
                        _cmdConsultarPrimerTrimestre = new RelayCommand(x => ConsultarDatos("T1 "));
                    }
                    return _cmdConsultarPrimerTrimestre;
                }
            }
            RelayCommand _cmdConsultarAbril;
            public ICommand cmdConsultarAbril
            {
                get
                {
                    if (_cmdConsultarAbril == null)
                    {
                        _cmdConsultarAbril = new RelayCommand(x => ConsultarDatos("ABR"));
                    }
                    return _cmdConsultarAbril;
                }
            }
            RelayCommand _cmdConsultarMayo;
            public ICommand cmdConsultarMayo
            {
                get
                {
                    if (_cmdConsultarMayo == null)
                    {
                        _cmdConsultarMayo = new RelayCommand(x => ConsultarDatos("MAY"));
                    }
                    return _cmdConsultarMayo;
                }
            }
            RelayCommand _cmdConsultarJunio;
            public ICommand cmdConsultarJunio
            {
                get
                {
                    if (_cmdConsultarJunio == null)
                    {
                        _cmdConsultarJunio = new RelayCommand(x => ConsultarDatos("JUN"));
                    }
                    return _cmdConsultarJunio;
                }
            }
            RelayCommand _cmdConsultarSegundoTrimestre;
            public ICommand cmdConsultarSegundoTrimestre
            {
                get
                {
                    if (_cmdConsultarSegundoTrimestre == null)
                    {
                        _cmdConsultarSegundoTrimestre = new RelayCommand(x => ConsultarDatos("T2 "));
                    }
                    return _cmdConsultarSegundoTrimestre;
                }
            }
            RelayCommand _cmdConsultarPrimerSemestre;
            public ICommand cmdConsultarPrimerSemestre
            {
                get
                {
                    if (_cmdConsultarPrimerSemestre == null)
                    {
                        _cmdConsultarPrimerSemestre = new RelayCommand(x => ConsultarDatos("S1 "));
                    }
                    return _cmdConsultarPrimerSemestre;
                }
            }
            RelayCommand _cmdConsultarJulio;
            public ICommand cmdConsultarJulio
            {
                get
                {
                    if (_cmdConsultarJulio == null)
                    {
                        _cmdConsultarJulio = new RelayCommand(x => ConsultarDatos("JUL"));
                    }
                    return _cmdConsultarJulio;
                }
            }
            RelayCommand _cmdConsultarAgosto;
            public ICommand cmdConsultarAgosto
            {
                get
                {
                    if (_cmdConsultarAgosto == null)
                    {
                        _cmdConsultarAgosto = new RelayCommand(x => ConsultarDatos("AGO"));
                    }
                    return _cmdConsultarAgosto;
                }
            }
            RelayCommand _cmdConsultarSeptiembre;
            public ICommand cmdConsultarSeptiembre
            {
                get
                {
                    if (_cmdConsultarSeptiembre == null)
                    {
                        _cmdConsultarSeptiembre = new RelayCommand(x => ConsultarDatos("SEP"));
                    }
                    return _cmdConsultarSeptiembre;
                }
            }
            RelayCommand _cmdConsultarTercerTrimestre;
            public ICommand cmdConsultarTercerTrimestre
            {
                get
                {
                    if (_cmdConsultarTercerTrimestre == null)
                    {
                        _cmdConsultarTercerTrimestre = new RelayCommand(x => ConsultarDatos("T3 "));
                    }
                    return _cmdConsultarTercerTrimestre;
                }
            }
            RelayCommand _cmdConsultarOctubre;
            public ICommand cmdConsultarOctubre
            {
                get
                {
                    if (_cmdConsultarOctubre == null)
                    {
                        _cmdConsultarOctubre = new RelayCommand(x => ConsultarDatos("OCT"));
                    }
                    return _cmdConsultarOctubre;
                }
            }
            RelayCommand _cmdConsultarNoviembre;
            public ICommand cmdConsultarNoviembre
            {
                get
                {
                    if (_cmdConsultarNoviembre == null)
                    {
                        _cmdConsultarNoviembre = new RelayCommand(x => ConsultarDatos("NOV"));
                    }
                    return _cmdConsultarNoviembre;
                }
            }
            RelayCommand _cmdConsultarDiciembre;
            public ICommand cmdConsultarDiciembre
            {
                get
                {
                    if (_cmdConsultarDiciembre == null)
                    {
                        _cmdConsultarDiciembre = new RelayCommand(x => ConsultarDatos("DIC"));
                    }
                    return _cmdConsultarDiciembre;
                }
            }
            RelayCommand _cmdConsultarCuartoTrimestre;
            public ICommand cmdConsultarCuartoTrimestre
            {
                get
                {
                    if (_cmdConsultarCuartoTrimestre == null)
                    {
                        _cmdConsultarCuartoTrimestre = new RelayCommand(x => ConsultarDatos("T4 "));
                    }
                    return _cmdConsultarCuartoTrimestre;
                }
            }
            RelayCommand _cmdConsultarSegundoSemestre;
            public ICommand cmdConsultarSegundoSemestre
            {
                get
                {
                    if (_cmdConsultarSegundoSemestre == null)
                    {
                        _cmdConsultarSegundoSemestre = new RelayCommand(x => ConsultarDatos("S2 "));
                    }
                    return _cmdConsultarSegundoSemestre;
                }
            }
            RelayCommand _cmdConsultarConsolidado;
            public ICommand cmdConsultarConsolidado
            {
                get
                {
                    if (_cmdConsultarConsolidado == null)
                    {
                        _cmdConsultarConsolidado = new RelayCommand(x => ConsultarDatos("ZZZ"));
                    }
                    return _cmdConsultarConsolidado;
                }
            }
            //FJRF - Final de Consulta de periodos
            RelayCommand _cmdImprimir;
            public ICommand cmdImprimir
            {
                get
                {
                    if (_cmdImprimir == null)
                    {
                        _cmdImprimir = new RelayCommand(x => imprimir());
                    }
                    return _cmdImprimir;
                }
            }
        #endregion
        #region Metodos
            private void Consultar()
            {
                if (IntAño.ToString().Length == 4)
                {
                    if (strCodigoCliente != null)
                    {
                        if (_Clientes.CODCLI_CLI.Length == 3)
                        {
                            LisCumplimientoEntregaPedidos = _repositorio.consultarCumplimientoEntregaPedidos(IntAño, _Clientes.CODCLI_CLI, _Clientes.CODCLI_CLI);

                            IntPtrAño = IntAño;
                            StrPtrClienteInicial = _Clientes.CODCLI_CLI;
                            StrPtrClienteFinal = _Clientes.CODCLI_CLI;
                        }
                        else
                        {
                            LisCumplimientoEntregaPedidos = _repositorio.consultarCumplimientoEntregaPedidos(IntAño, "   ", "ZZZ");

                            IntPtrAño = IntAño;
                            StrPtrClienteInicial = "   ";
                            StrPtrClienteFinal = "ZZZ";
                        }
                    }
                    else
                    {
                        LisCumplimientoEntregaPedidos = _repositorio.consultarCumplimientoEntregaPedidos(IntAño, "   ", "ZZZ");

                        IntPtrAño = IntAño;
                        StrPtrClienteInicial = "   ";
                        StrPtrClienteFinal = "ZZZ";
                    }
                    int numContador = 0;
                    Double DblCantidadCumplimiento = 0;
                    Double DblCamtidadIncumplimiento = 0;

                    List<VmCumplimientoEntregaPedidos> all = (from lis in LisCumplimientoEntregaPedidos where lis.TIPO_TMP == "ZZZ" select new VmCumplimientoEntregaPedidos(lis)).ToList();
                    foreach (VmCumplimientoEntregaPedidos VmDatos in all)
                    {
                        numContador++;
                        DblCantidadCumplimiento = DblCantidadCumplimiento + VmDatos.CANCUM_TMP;
                        DblCamtidadIncumplimiento = DblCamtidadIncumplimiento + VmDatos.CANINC_TMP;
                    }
                    lisCumplimientoEntregaPedidos = new ObservableCollection<VmCumplimientoEntregaPedidos>(all);
                    
                    List<MDatosGrafico> Grafico = new List<MDatosGrafico>();

                    Grafico.Add(new MDatosGrafico { strNombreColumna = "CUMPLIMIENTO", strValorColumna = DblCantidadCumplimiento.ToString() });
                    Grafico.Add(new MDatosGrafico { strNombreColumna = "INCUMPLIMIENTO", strValorColumna = DblCamtidadIncumplimiento.ToString() });


                    List<VmDatosGrafico> al = (from lis in Grafico select new VmDatosGrafico(lis)).ToList();
                    foreach (VmDatosGrafico VmDatos in al)
                    {
                        numContador++;
                    }
                    lisDatosGrafico = new ObservableCollection<VmDatosGrafico>(al);
                }
            }
            public void Salir(Object frmformulario)
            {
                ((Window)frmformulario).Close();
            }
            private void ConsultarDatos(String StrTipoDeConsulta)
            {
                int IntCantidadDeRegistros = 0;
                List<VmCumplimientoEntregaPedidos> all = (from lis in LisCumplimientoEntregaPedidos where lis.TIPO_TMP == StrTipoDeConsulta select new VmCumplimientoEntregaPedidos(lis)).ToList();
                foreach (VmCumplimientoEntregaPedidos xx in all)
                {
                    IntCantidadDeRegistros++;
                }

                lisCumplimientoEntregaPedidos = new ObservableCollection<VmCumplimientoEntregaPedidos>(all);
            }
             private string ValidarDato(string StrCampo, string StrDato)
             {
                 if (StrCampo == "No existe")
                 {
                     //StrDato = ""; //Se quita para que pase los parametros como se envian directamente si se va a enviar al informe vacio solo quitar comentario
                 }
                 return StrDato;
             }
             private void imprimir()
             {
                 try
                 {
                    DataTable dtParametros = new DataTable("DtbParametros");
                    dtParametros.Columns.Add("PNU_ANO", System.Type.GetType("System.String"));
                    dtParametros.Columns.Add("PVA_CLIINI", System.Type.GetType("System.String"));
                    dtParametros.Columns.Add("PVA_CLIFIN", System.Type.GetType("System.String"));

                    DataRow drParametros;
                    drParametros = dtParametros.NewRow();
                    drParametros["PNU_ANO"] = IntPtrAño;
                    drParametros["PVA_CLIINI"] = StrPtrClienteInicial;
                    drParametros["PVA_CLIFIN"] = StrPtrClienteFinal;

                    dtParametros.Rows.Add(drParametros);

                    DataTable dtImp = new DataTable("DtbCumplimientoEntregaPedidos");
                    dtImp.Columns.Add("NOMCLI_CLI");
                    dtImp.Columns.Add("NROPED_TMP");
                    dtImp.Columns.Add("FECPED_TMP");
                    dtImp.Columns.Add("FECENT_TMP");
                    dtImp.Columns.Add("CANTOT_TMP");
                    dtImp.Columns.Add("CANCUM_TMP");
                    dtImp.Columns.Add("CANINC_TMP");
                    dtImp.Columns.Add("PORCUM_TMP");
                    dtImp.Columns.Add("PORINC_TMP");

                    DataRow dr;
                    foreach (VmCumplimientoEntregaPedidos i in lisCumplimientoEntregaPedidos)
                    {
                        dr = dtImp.NewRow();
                        dr["NOMCLI_CLI"] = i.NOMCLI_CLI;
                        dr["NROPED_TMP"] = i.NROPED_TMP;
                        dr["FECPED_TMP"] = i.FECPED_TMP;
                        dr["FECENT_TMP"] = i.FECENT_TMP;
                        dr["CANTOT_TMP"] = i.CANTOT_TMP;
                        dr["CANCUM_TMP"] = i.CANCUM_TMP;
                        dr["CANINC_TMP"] = i.CANINC_TMP;
                        dr["PORCUM_TMP"] = i.PORCUM_TMP;
                        dr["PORINC_TMP"] = i.PORINC_TMP;

                        dtImp.Rows.Add(dr);
                    }

                    DataSet ds = new DataSet("dsCumplimientoEntregaPedidos");

                    
                    ds.Tables.Add(dtImp);//Tabla
                    ds.Tables.Add(dtParametros);//Parametros

                    Vista vista = new Vista { ds = ds, reporte = @"reportes\rptCumplimientoEntregaPedidos.rpt" };
                    vista.Show();
                 }
                 catch (Exception ex) { MessageBox.Show(ex.Message); }
             }
        #endregion
    }

    public class VmCumplimientoEntregaPedidos : ViewModelBase
    {
        #region Campos
        private MCumplimientoEntregaPedidos _CumplimientoEntregaPedidos = new MCumplimientoEntregaPedidos();
        private VmCumplimientoEntregaPedidos lis;
        #endregion

        #region Constructor
            public VmCumplimientoEntregaPedidos(MCumplimientoEntregaPedidos CumplimientoEntregaPedidos)
            {
                _CumplimientoEntregaPedidos = CumplimientoEntregaPedidos;
            }
            public VmCumplimientoEntregaPedidos()
            { 
            
            }

            public VmCumplimientoEntregaPedidos(VmCumplimientoEntregaPedidos lis)
            {
                // TODO: Complete member initialization
                this.lis = lis;
            }
        #endregion

        #region interfaces publicas (Propiedades)
            //FJRF - 1. TIPO: ES EL TIPO DE CONSULTA QUE TIENE LA TABLA EJEMPLO POR MES
            public string TIPO_TMP
            {
                get { return _CumplimientoEntregaPedidos.TIPO_TMP; }
                set { _CumplimientoEntregaPedidos.TIPO_TMP = value; base.OnPropertyChanged("TIPO_TMP"); }
            }
            //FJRF - 2. CODIGO DEL CLIENTE
            public string CODCLI_TMP
            {
                get { return _CumplimientoEntregaPedidos.CODCLI_TMP; }
                set { _CumplimientoEntregaPedidos.CODCLI_TMP = value; base.OnPropertyChanged("CODCLI_TMP"); }
            }
            //FJRF - 3. NUMERO DE PEDIDO
            public Int32 NROPED_TMP
            {
                get { return _CumplimientoEntregaPedidos.NROPED_TMP; }
                set { _CumplimientoEntregaPedidos.NROPED_TMP = value; base.OnPropertyChanged("NROPED_TMP"); }
            }
            //FJRF - 4. NOMBRE DEL CLIENTE
            public string NOMCLI_CLI
            {
                get { return _CumplimientoEntregaPedidos.NOMCLI_CLI; }
                set { _CumplimientoEntregaPedidos.NOMCLI_CLI = value; base.OnPropertyChanged("NOMCLI_CLI"); }
            }
            //FJRF - 5. FECHA PEDIDO
            //public DateTime FECPED
            //{
            //    get { return _CumplimientoEntregaPedidos.FECPED; }
            //    set { _CumplimientoEntregaPedidos.FECPED = value; base.OnPropertyChanged("FECPED"); }
            //}
            public string FECPED_TMP
            {
                get { return _CumplimientoEntregaPedidos.FECPED_TMP; }
                set { _CumplimientoEntregaPedidos.FECPED_TMP = value; base.OnPropertyChanged("FECPED_TMP"); }
            }
            //FJRF - 6. FECHA ENTREGA
            //public DateTime FECENT
            //{
            //    get { return _CumplimientoEntregaPedidos.FECENT; }
            //    set { _CumplimientoEntregaPedidos.FECENT = value; base.OnPropertyChanged("FECENT"); }
            //}
            public string FECENT_TMP
            {
                get { return _CumplimientoEntregaPedidos.FECENT_TMP; }
                set { _CumplimientoEntregaPedidos.FECENT_TMP = value; base.OnPropertyChanged("FECENT_TMP"); }
            }
            //FJRF - 7. CANTIDAD TOTAL
            public Int32 CANTOT_TMP
            {
                get { return _CumplimientoEntregaPedidos.CANTOT_TMP; }
                set { _CumplimientoEntregaPedidos.CANTOT_TMP = value; base.OnPropertyChanged("CANTOT_TMP"); }
            }
            //FJRF - 8. CANTIDAD ACUMULADA
            public Int32 CANCUM_TMP
            {
                get { return _CumplimientoEntregaPedidos.CANCUM_TMP; }
                set { _CumplimientoEntregaPedidos.CANCUM_TMP = value; base.OnPropertyChanged("CANCUM_TMP"); }
            }
            //FJRF - 9. CANTIDAD INCUMPLIDA
            public Int32 CANINC_TMP
            {
                get { return _CumplimientoEntregaPedidos.CANINC_TMP; }
                set { _CumplimientoEntregaPedidos.CANINC_TMP = value; base.OnPropertyChanged("CANINC_TMP"); }
            }
            //FJRF - 10. PORCENTAJE CUMPLIMIENTO
            public Double PORCUM_TMP
            {
                get { return _CumplimientoEntregaPedidos.PORCUM_TMP; }
                set { _CumplimientoEntregaPedidos.PORCUM_TMP = value; base.OnPropertyChanged("PORCUM_TMP"); }
            }
            //FJRF - 11. PORCENTAJE INCUMPLIDO
            public Double PORINC_TMP
            {
                get { return _CumplimientoEntregaPedidos.PORINC_TMP; }
                set { _CumplimientoEntregaPedidos.PORINC_TMP = value; base.OnPropertyChanged("PORINC_TMP"); }
            }
        #endregion

        #region Metodos
            public MCumplimientoEntregaPedidos getCumplimientoEntregaPedidos()
            {
                return _CumplimientoEntregaPedidos;
            }
        #endregion
    }
    public class VmDatosGrafico : ViewModelBase
    {
        #region Campos
            private MDatosGrafico _MDatosGrafico = new MDatosGrafico();
        #endregion
        #region Constructor
            public VmDatosGrafico(MDatosGrafico DatosGrafico)
            {
                _MDatosGrafico = DatosGrafico;
            }
            public VmDatosGrafico()
            { 
            
            }
        #endregion
        #region interfaces publicas (Propiedades)
            public string strNombreColumna
            {
                get { return _MDatosGrafico.strNombreColumna; }
                set { _MDatosGrafico.strNombreColumna = value; base.OnPropertyChanged("strNombreColumna"); }
            }
            public string strValorColumna
            {
                get { return _MDatosGrafico.strValorColumna; }
                set { _MDatosGrafico.strValorColumna = value; base.OnPropertyChanged("strValorColumna"); }
            }
        #endregion
        #region Metodos
            public MDatosGrafico getDatosGrafico()
            {
                return _MDatosGrafico;
            }
        #endregion
    }
}
